詳解 ビットコイン ─ ゼロから設計する過程で学ぶデジタル通貨システム by Kalle Rosenbaum
ブロックチェーンの存在理由は、データの消去または無視を防ぐため?
そうなのだが、プルーフオブワークも必要
ブロックの作成はコンピューターで行いますので、リサの秘密鍵を使える人は、一瞬で以降のブロックを新しく作り直すことができるでしょう。改ざんを困難にするためにはプルーフオブワーク(7章)などの仕組みが必要です。↖️ この例はプルーフオブワークの代わりに、ノードによる署名を使っている
逆に言えば、管理者による署名はプルーフオブワークで代替できる
不可能と言われたら逆計算をやってのける様なことをしている
途中から塗り替えるのも、1人でやりたい放題し続けることが不可能
他人と協力してチェーンを伸ばして行かざるを得ない
リサがトランザクションを削除したり、書き換えたりすることができないようにします↖️ それと順番の証明
トランザクションの中身は署名で守られているのでどうしようもないはず
その通りであり
リサがトランザクションを削除できるのは、すべてのトランザクションをまとめたリストに変更が加えられたことを誰も検証できないからです↖️ データの複製を防ぐためには、別のやり方としてidが使われる
個人の財布はミニ財布の集まりである
ノードによってトランザクションが届く順序は異なるので、コピーはすぐにコピーではなくなってしまいます(図1.5)。 トランザクションの順序を調整するために、ノードのなかのひとつが音頭を取って、「B、Aの順序でブロックチェーンにふたつのトランザクションを追加したいと思います」※6と言います。このメッセージはブロック(block)と呼ばれ↖️ あんまりいい説明じゃない気がする
このような説明を読んで生まれた解釈が,
なぜ1つのトランザクション毎にブロックチェーンを更新するのではなくて,ブロックと言うまとまりにすするのだろうか?ビットコインの性質上ノード間の情報共有には時間差があるので,各ノードへのトランザクションの到達順序はトランザクションがネットワークに流された順番とは異なる.そのためトランザクション毎にブロックチェーンを更新しようとすると,ブロックのつながる順番が異なりブロックチェーンが共有されているとは言えない状態になる.これを解消するために,ブロックチェーンに追加するトランザクションは,一定時間が経過しトランザクションが行き渡ったあとであるノードがブロックとして同一のファイルにまとめ,トランザクションと同じようにネットワークに流すことでブロックチェーンの更新を共有しようというものである.
トランザクションをまとめるブロックが必要な理由
というより、ちょうどいいブロックを作るための仕組み
ネットワーク内のほとんどのノードは、チャレンジしようとさえ思いません。問題にチャレンジするノードは、金の採掘者が金を掘り出すのと同じように新しいコインを掘り出すため、マイナー(miner、採掘者)と呼ばれます。↖️ マイナーとノードは別である
マイニングしないノードもある
この様なノードのインセンティブは自分で信頼できるノードを立てたいからだ
秘密鍵が正しい
計算できたものが正しい
紙幣と硬貨はこの問題の影響を受けないことに注意してください。現金がある限り、人々は自由にプライバシーが守られた形で取引できます↖️ ビットコインは電子化された貨幣を発明した
貨幣というより金か
国は、国債の返済、戦争、福祉などの費用を国民に転嫁させるための手段として、マネーサプライを増加させることがあります↖️ なぜ転嫁させることになるのだ?
広範な合意なしでビットコインのルールを変更することはほとんど不可能です。あるノードがルールに従わなければ、ほかのノードから無視されるようになります↖️ この仕組みが知りたい
スウェーデンでスウェーデンクローナ(SEK)をビットコインに両替し、フィリピンの友人にそのビットコインを送る方が一般に安く済みます↖️ revoltとは大違いだ
この様な仕組みの為替サービスはあるか?
長期的にはビットコインのデフレ傾向が目立つようになってくるでしょう。↖️ なぜ巷では適度なインフラが健全ということになるのだろう
1BTCに遠く満たない小さな額を安く瞬間的に送金できるライトニングネットワークもそのひとつです。ライトニングネットワークを使えば、100satoshi(1satoshi=0.000,000,01BTC)を1satoshiの手数料で送金できます。↖️ ライトニングネットワークってそういこうかとか
クッキートークンアドレスは、入力ミスが起きていれば検出できるような形に符号化された(encoded)PKHです。↖️ 対応表は不要
プライバシー問題が残っていることは明らかです。幸い、先ほど述べたように、ユーザーはいくつでもアドレスを作ることができます。たとえば、カフェは入金ごとに新しいアドレスを作ることができます。そして、ジョンは次にファイザからクッキートークンをもらうときにはまったく新しいクッキートークンアドレスを作ることができます。↖️ ワンタイムクレカ番号みたいな感じ
ビットコインアドレスは、再利用してはなりません。アドレスを再利用すると、セキュリティとプライバシー保護の両方が弱体化します。↖️ ワンタイムアドレスがデフォルト
トランザクションには、受領者についての情報が含まれていますが、それだけでなく、ジョンが以前のトランザクションで得た未使用トランザクション出力(unspent transaction outputs:UXTO)と呼ばれる特定の「コイン」の参照情報が含まれています。つまり、どのお金で支払うかについての情報が含まれているのです。↖️ 以前受け取った小分けの財布を組み合わせて支払いを行う
お釣りも含む
記録から、全ての履歴をサムして、現在のお金を計算するなどはしない
しかし、未使用の財布なのかの判別は必要
その計算を簡単にするために
支払いに充てられているトランザクション出力が未使用かどうかのチェックを楽にするために、彼女は新しい自分専用のデータベースを作り、UTXOセット(未使用トランザクション出力集合)と呼んでいます(図5.6参照)。これは、すべての未使用トランザクション出力(UTXO)を集めたものです。↖️ プログラムの公開鍵スクリプトの部分は、出力を支払いに使えるようにするためにトランザクションが提供しなければならないものを規定します。そのトランザクションの出力を使うトランザクションは、スタックをOKにしてプログラムを終了させるような署名スクリプトを提供しない限り、出力を支払いに使うことはできません。↖️ ビットコインもプログラマブルである
どんな時に財布を使えるのかをプログラムできる
ブロックチェーンを使えば、リサは最近のトランザクションを集めたブロックに署名するだけで済みます。しかも、前のブロックIDを介して間接的にすべてのトランザクションに署名する効果があります↖️ ブロックを使うと、差分に署名するようなもの
マイナーたちへのインセンティブとして、トランザクションを作る人は、トランザクションを承認してブロックに入れたマイナーにトランザクション手数料(transaction fee)を渡せるようにします↖️ 新規生成コイン以外にもインセンティブがある
ビットコインを本当の意味で非中央集権化(decentralized)しているのはプルーフオブワークなのです↖️ プルーフオブワークは、中央に権力を置かずにすべてのマイナーのなかからリーダー(音頭取り)をランダムに選べるようにする仕組みです。↖️ 実際にはリーダーを選んでいて、本当に非中央なのかは疑問
監訳注:しかし実際にはプルーフオブワークのための計算資源は偏る傾向にあり、この意味でも非中央集権化がうまくいっているとはかならずしも言えません↖️